import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        int m=in.nextInt();
        int[][] vis=new int[1001][1001];
        for(int i=1;i<=n;i++){
            int k=in.nextInt();
            for(int j=1;j<=k;j++){
                vis[i][j]=in.nextInt();
            }
        }
        int q=in.nextInt();
        int[][] arr=new int[q+1][3];
        for(int i=1;i<=q;i++){
            arr[i][1]=in.nextInt();
            arr[i][2]=in.nextInt();
        }
        for(int g=1;g<vis.length&&vis[g][1]!=0;g++){
            int count=0;
            Set<Integer> set=new HashSet<>();
            for(int h=1;h<vis[0].length;h++){
                if(vis[g][h]==0){
                    break;
                }
                set.add(vis[g][h]);
            }
            for(int i=1;i<=q;i++){
                if(set.contains(arr[i][1])&&set.contains(arr[i][2])){
                    count++;
                }
            }
        }
    }
    public static void main1(String[] args) {
        Scanner in=new Scanner(System.in);
		int a=in.nextInt();
		int b=in.nextInt();
        int max=0;
		for(int i=a;i<=b;i++) {
            max=Math.max(max,func1(i));
		}
        System.out.println(max);
        int cou=0;
        for(int i=a;i<=b;i++){
            if(func1(i)==max){
                if(cou!=0){
                    System.out.print(" "+i);
                }else{
                    System.out.print(i);
                }
                cou++;
            }
        }
    }

    public static int func1(long n) {
        long res = 1;
        int count = 0;
        do {
            res=1;
            while (n > 0) {
                long t = n % 10;
                n /= 10;
                res *= t;
            }
            n=res;
            count++;
        } while (res >= 10);
        return count;
    }
}
